using System;
using System.Collections.Generic;
using NHibernate.Search.Attributes;
using NHibernate.Search;

namespace Ic.Model
{
	#region BandsmanExpr

	/// <summary>
	/// BandsmanExpr object for NHibernate mapped table 'TB_BandsmanExpr'.
	/// </summary>
	[Serializable]
	[TableInfo(TableName = "TB_BandsmanExpr", PrimaryKey = "Id" , Columns="Id,BandsManId,ExprBandName,ExprBandStyle,ExprPostion,EndTime,StartTime,RegDate,Idx")]
	[Indexed(Index = "BandsmanExpr")] 
	public class BandsmanExpr
	{
		#region Member Variables
		
		protected int _id;
		protected int _bandsManId;
		protected string _exprBandName;
		protected string _exprBandStyle;
		protected string _exprPostion;
		protected DateTime _endTime;
		protected DateTime _startTime;
		protected DateTime _regDate;
		protected int _idx;

		#endregion

		#region Constructors

		public BandsmanExpr() { }

		public BandsmanExpr( int bandsManId, string exprBandName, string exprBandStyle, string exprPostion, DateTime endTime, DateTime startTime, DateTime regDate, int idx )
		{
			this._bandsManId = bandsManId;
			this._exprBandName = exprBandName;
			this._exprBandStyle = exprBandStyle;
			this._exprPostion = exprPostion;
			this._endTime = endTime;
			this._startTime = startTime;
			this._regDate = regDate;
			this._idx = idx;
		}

		#endregion

		#region Public Properties

		[DocumentId]
		public virtual int Id
		{
			get {return _id;}
			set {_id = value;}
		}

		public virtual int BandsManId
		{
			get { return _bandsManId; }
			set { _bandsManId = value; }
		}

		[Field(Index.Tokenized, Store = Store.Yes)]
		public virtual string ExprBandName
		{
			get { return _exprBandName; }
			set
			{
				if ( value != null && value.Length > 50)
					throw new ArgumentOutOfRangeException("Invalid value for ExprBandName", value, value.ToString());
				_exprBandName = value;
			}
		}

		[Field(Index.Tokenized, Store = Store.Yes)]
		public virtual string ExprBandStyle
		{
			get { return _exprBandStyle; }
			set
			{
				if ( value != null && value.Length > 200)
					throw new ArgumentOutOfRangeException("Invalid value for ExprBandStyle", value, value.ToString());
				_exprBandStyle = value;
			}
		}

		[Field(Index.Tokenized, Store = Store.Yes)]
		public virtual string ExprPostion
		{
			get { return _exprPostion; }
			set
			{
				if ( value != null && value.Length > 50)
					throw new ArgumentOutOfRangeException("Invalid value for ExprPostion", value, value.ToString());
				_exprPostion = value;
			}
		}

		public virtual DateTime EndTime
		{
			get { return _endTime; }
			set { _endTime = value; }
		}

		public virtual DateTime StartTime
		{
			get { return _startTime; }
			set { _startTime = value; }
		}

		public virtual DateTime RegDate
		{
			get { return _regDate; }
			set { _regDate = value; }
		}

		public virtual int Idx
		{
			get { return _idx; }
			set { _idx = value; }
		}

		

		#endregion
	}
	#endregion
}